#ifndef __SENSOR_FUSION_NODE_H_
#define __SENSOR_FUSION_NODE_H_

#include <mc_perception/data_fusion/sensors_fusion.h>

// 传感器预处理
class SensorFusionNode{
    public:
        SensorFusionNode(tf2_ros::Buffer* tf_buffer);

        // 雷达回调函数
        void ScanRawCallback(const sensor_msgs::LaserScan::Ptr& msg);
        // 里程计回调函数
        void OdomRawCallback(const nav_msgs::Odometry::Ptr& msg);
        // IMU回调函数
        void ImuRawCallback(const sensor_msgs::Imu::Ptr& msg);

        // 循环函数
        void Loop();

    private:
        ros::NodeHandle nh_;
        tf2_ros::Buffer* tfBuffer_;
        ros::Subscriber scanRawSub_;
        ros::Subscriber odomSub_;
        ros::Subscriber imuSub_;
        ros::Publisher fusionCloudPub_;

        string baseFrameId_;
        boost::shared_ptr<SensorsFusion> sensorsFusionPtr_;
        Lidar2DConfig scanRawConfig_;
};

#endif
